iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
Mobile Development

React Native CLI 開發心法系列 第 22

DAY 22 React Native Fabric 渲染器的 Render Pipeline

  • 分享至 

  • xImage
  •  

從上一篇文章可以知道 Fabric 渲染系統在新架構中擔任了生成 Shadow Tree 和使用 Yoga 引擎計算佈局重要的角色,接著這裡會分享 Fabric 是如何將 React 邏輯渲染到 iOS、Android 上。

渲染主要可以分成三個階段:

1. Render 階段:

React 會在 JavaScript 中同步生成 React Element Trees ,根據這個樹的結構,Fabric 渲染器會生成用 C++ 編寫 React Shadow Tree ,同時 Fabric 渲染器會自動將 React element nodes 的父子關係反映在 React shadow nodes。

例如: <Text> 就會被轉換成 <TextShadowNode>

https://ithelp.ithome.com.tw/upload/images/20230924/20162496NhgtpoBTpv.png

2. Commit 階段:

當 React Shadow Tree 完全的生成後,渲染器會觸發一個提交(Commit):

  • Layout calculation:
    根據 Yoga 引擎計算佈局,針對每一個 React Shadow Node 產生元素位置與大小。
  • Tree Promotion:
    將 React Element Tree 跟 React Shadow Tree 提升為下一個要掛載的樹。

https://ithelp.ithome.com.tw/upload/images/20230924/2016249628lYt5s8La.png

3. Mount 階段:

經過佈局的計算的 React Shadow Tree 會透過 Fabric 渲染器轉換成 Host View Tree,然後 Fabric 渲染器會創建這些視圖並且掛載至裝置的螢幕。

https://ithelp.ithome.com.tw/upload/images/20230924/20162496xryWh1Cca2.png

小結

藉由 Fabric 渲染器把本來在 Native 的渲染邏輯統一到 C++,簡化了渲染的步驟(不用再 iOS、Android 各處理一次),也擴大未來導入其他的原生平台的可能性。

參考資料

Fabric Architecture – How it makes the react native better?

圖片來源

Render, Commit, and Mount


上一篇
DAY 21 解析 React Native 新架構(New Architecture) 原理
下一篇
DAY 23 React Native 效能優化:衡量效能的關鍵指標
系列文
React Native CLI 開發心法31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
DL
iT邦新手 5 級 ‧ 2023-10-10 16:37:07

筆者對ReactNative研究真深....
連這部分都有圖
收下我的膝蓋

我要留言

立即登入留言